\documentclass{standalone}    
\usepackage{pgf}
\usepackage{tikz}
\usepackage{stix}
\usetikzlibrary{arrows,automata}
\begin{document}
\usetikzlibrary{arrows.meta}
\begin{tikzpicture}[->,>=stealth',shorten >=1pt,auto,node distance=2.8cm]
    \tikzstyle{every state}=[fill=white,draw=black]
    \node[state] (A) at (0,0) {A};
    \node[state] (B) at (3,0) {B};
    \node[state] (C) at (1.5,1.7) {C};
    \begin{scope}[>={Stealth[black]},
        every edge/.style={draw=black, semithick}]
        \path (A) edge [loop below] node {id} (A)
                  edge  node {f}  (B)
                  edge [bend left]  node {f$\cdot$g}  (C)
              (B) edge [loop below] node {id} (B)
                  edge [bend right] node {g} (C)
              (C) edge [loop above] node {id} (C);

    \end{scope}
\end{tikzpicture}  
\end{document}